<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .item {
            width: 300px;
            height: 200px;
            border: 1px solid #ccc;
            display: none;
        }
        
        .tab .active {
            background-color: red;
        }
    </style>
</head>

<body>
    <div class="tab">
        <button class="active">html</button>
        <button>css</button>
        <button>javascirpt</button>
        <div class="item" style="display: block;">
            HTML称为超文本标记语言，是一种标识性的语言。它包括一系列标签．通过这些标签可以将网络上的文档格式统一，使分散的Internet资源连接为一个逻辑整体。
        </div>
        <div class="item">
            层叠样式表(英文全称：Cascading Style Sheets)是一种用来表现HTML（标准通用标记语言的一个应用）或XML（标准通用标记语言的一个子集）等文件样式的计算机语言。
        </div>
        <div class="item">
            JavaScript（简称“JS”） 是一种具有函数优先的轻量级，解释型或即时编译型的高级编程语言。虽然它是作为开发Web页面的脚本语言而出名的，但是它也被用到了很多非浏览器环境中，JavaScript 基于原型编程、多范式的动态脚本语言，并且支持面向对象、命令式和声明式（如函数式编程）风格。
        </div>
    </div>
</body>

</html>
<script>
    //1.获取元素对象
    const aBtn = document.querySelectorAll('.tab button');
    const aItem = document.querySelectorAll('.tab .item');

    //2.添加点击事件
    // for (let i = 0; i < aBtn.length; i++) {
    //     aBtn[i].onclick = function() {
    //         for (let j = 0; j < aBtn.length; j++) {
    //             aBtn[j].className = '';
    //             aItem[j].style.display = 'none';
    //         }
    //         //即let所声明的变量就“ 绑定” 这个区域， 不再受外部的影响  i就是索引
    //         aBtn[i].className = 'active';
    //         aItem[i].style.display = 'block';
    //     }
    // }


    for (var i = 0; i < aBtn.length; i++) {
        aBtn[i].index = i; //添加自定义属性，属性的值必须是按钮的索引
        aBtn[i].onclick = function() {
            for (var j = 0; j < aBtn.length; j++) {
                aBtn[j].className = '';
                aItem[j].style.display = 'none';
            }
            //i:循环的最后一次值。
            this.className = 'active';
            aItem[this.index].style.display = 'block'; //通过this找自定义的属性。
        }
    }
</script>